<!DOCTYPE html>
<html CN>







<head>
	
	
	<link rel="stylesheet" href="/css/allinone.min.css"> 

	
	<!-- Global Site Tag (gtag.js) - Google Analytics -->
	<script async src="https://www.googletagmanager.com/gtag/js?id=UA-42863699-1"></script>
	<script>
		window.dataLayer = window.dataLayer || [];
		function gtag(){dataLayer.push(arguments);}
		gtag('js', new Date());
		gtag('config', 'UA-42863699-1');
	</script>
	

	<meta charset="utf-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge" />

	<title>容器生态系统简介 | Cizixs Write Here</title>

	<meta name="HandheldFriendly" content="True" />
	<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
	<meta name="generator" content="hexo">
	<meta name="author" content="Cizixs Wu">
	<meta name="description" content="">

	
	<meta name="keywords" content="">
	

	
	<link rel="shortcut icon" href="https://cizixs-blog.oss-cn-beijing.aliyuncs.com/006tNc79ly1g1qxfovpzyj30740743yg.jpg">
	

	
	<meta name="theme-color" content="#3c484e">
	<meta name="msapplication-TileColor" content="#3c484e">
	

	

	

	<meta property="og:site_name" content="Cizixs Write Here">
	<meta property="og:type" content="article">
	<meta property="og:title" content="容器生态系统简介 | Cizixs Write Here">
	<meta property="og:description" content="">
	<meta property="og:url" content="http://cizixs.com/2017/03/15/container-ecosystem/">

	
	<meta property="article:published_time" content="2017-03-15T00:03:00+08:00"/> 
	<meta property="article:author" content="Cizixs Wu">
	<meta property="article:published_first" content="Cizixs Write Here, /2017/03/15/container-ecosystem/" />
	

	
	
	<script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script>
	

	
	<script src="https://cdn.staticfile.org/highlight.js/9.10.0/highlight.min.js"></script>
	

	
	
<link rel="stylesheet" href="/css/prism-base16-ateliersulphurpool.light.css" type="text/css"></head>
<body class="post-template">
    <div class="site-wrapper">
        




<header class="site-header outer" style="z-index: 999">
    <div class="inner">
        
<nav class="site-nav"> 
    <div class="site-nav-left">
        <ul class="nav">
            <li>
                
                <a href="/" title="Home">Home</a>
                
            </li>
            
            
            <li>
                <a href="/about" title="About">About</a>
            </li>
            
            <li>
                <a href="/archives" title="Archives">Archives</a>
            </li>
            
            
        </ul> 
    </div>
    <div class="site-nav-right">
        
<div class="social-links" >
    
    <a class="social-link" title="weibo" href="https://weibo.com/1921727853" target="_blank" rel="noopener">
        <svg viewBox="0 0 1141 1024" xmlns="http://www.w3.org/2000/svg"><path d="M916.48 518.144q27.648 21.504 38.912 51.712t9.216 62.976-14.336 65.536-31.744 59.392q-34.816 48.128-78.848 81.92t-91.136 56.32-94.72 35.328-89.6 18.944-75.264 7.68-51.712 1.536-49.152-2.56-68.096-10.24-78.336-21.504-79.872-36.352-74.24-55.296-59.904-78.848q-16.384-29.696-22.016-63.488t-5.632-86.016q0-22.528 7.68-51.2t27.136-63.488 53.248-75.776 86.016-90.112q51.2-48.128 105.984-85.504t117.248-57.856q28.672-10.24 63.488-11.264t57.344 11.264q10.24 11.264 19.456 23.04t12.288 29.184q3.072 14.336 0.512 27.648t-5.632 26.624-5.12 25.6 2.048 22.528q17.408 2.048 33.792-1.536t31.744-9.216 31.232-11.776 33.28-9.216q27.648-5.12 54.784-4.608t49.152 7.68 36.352 22.016 17.408 38.4q2.048 14.336-2.048 26.624t-8.704 23.04-7.168 22.016 1.536 23.552q3.072 7.168 14.848 13.312t27.136 12.288 32.256 13.312 29.184 16.384zM658.432 836.608q26.624-16.384 53.76-45.056t44.032-64 18.944-75.776-20.48-81.408q-19.456-33.792-47.616-57.344t-62.976-37.376-74.24-19.968-80.384-6.144q-78.848 0-139.776 16.384t-105.472 43.008-72.192 60.416-38.912 68.608q-11.264 33.792-6.656 67.072t20.992 62.976 42.496 53.248 57.856 37.888q58.368 25.6 119.296 32.256t116.224 0.512 100.864-21.504 74.24-33.792zM524.288 513.024q20.48 8.192 38.912 18.432t32.768 27.648q10.24 12.288 17.92 30.72t10.752 39.424 1.536 42.496-9.728 38.912q-8.192 18.432-19.968 37.376t-28.672 35.328-40.448 29.184-57.344 18.944q-61.44 11.264-117.76-11.264t-88.064-74.752q-12.288-39.936-13.312-70.656t16.384-66.56q13.312-27.648 40.448-51.712t62.464-38.912 75.264-17.408 78.848 12.8zM361.472 764.928q37.888 3.072 57.856-18.432t21.504-48.128-15.36-47.616-52.736-16.896q-27.648 3.072-43.008 23.552t-17.408 43.52 9.728 42.496 39.424 21.504zM780.288 6.144q74.752 0 139.776 19.968t113.664 57.856 76.288 92.16 27.648 122.88q0 33.792-16.384 50.688t-35.328 17.408-35.328-14.336-16.384-45.568q0-40.96-22.528-77.824t-59.392-64.512-84.48-43.52-96.768-15.872q-31.744 0-47.104-15.36t-14.336-34.304 18.944-34.304 51.712-15.36zM780.288 169.984q95.232 0 144.384 48.64t49.152 146.944q0 30.72-10.24 43.52t-22.528 11.264-22.528-14.848-10.24-35.84q0-60.416-34.816-96.256t-93.184-35.84q-19.456 0-28.672-10.752t-9.216-23.04 9.728-23.04 28.16-10.752z" /></svg>
    </a>
    

    
    <a class="social-link" title="github" href="https://github.com/cizixs" target="_blank" rel="noopener">
        <svg viewBox="0 0 1049 1024" xmlns="http://www.w3.org/2000/svg"><path d="M524.979332 0C234.676191 0 0 234.676191 0 524.979332c0 232.068678 150.366597 428.501342 358.967656 498.035028 26.075132 5.215026 35.636014-11.299224 35.636014-25.205961 0-12.168395-0.869171-53.888607-0.869171-97.347161-146.020741 31.290159-176.441729-62.580318-176.441729-62.580318-23.467619-60.841976-58.234462-76.487055-58.234463-76.487055-47.804409-32.15933 3.476684-32.15933 3.476685-32.15933 53.019436 3.476684 80.83291 53.888607 80.83291 53.888607 46.935238 79.963739 122.553122 57.365291 152.97411 43.458554 4.345855-33.897672 18.252593-57.365291 33.028501-70.402857-116.468925-12.168395-239.022047-57.365291-239.022047-259.012982 0-57.365291 20.860106-104.300529 53.888607-140.805715-5.215026-13.037566-23.467619-66.926173 5.215027-139.067372 0 0 44.327725-13.906737 144.282399 53.888607 41.720212-11.299224 86.917108-17.383422 131.244833-17.383422s89.524621 6.084198 131.244833 17.383422C756.178839 203.386032 800.506564 217.29277 800.506564 217.29277c28.682646 72.1412 10.430053 126.029806 5.215026 139.067372 33.897672 36.505185 53.888607 83.440424 53.888607 140.805715 0 201.64769-122.553122 245.975415-239.891218 259.012982 19.121764 16.514251 35.636014 47.804409 35.636015 97.347161 0 70.402857-0.869171 126.898978-0.869172 144.282399 0 13.906737 9.560882 30.420988 35.636015 25.205961 208.601059-69.533686 358.967656-265.96635 358.967655-498.035028C1049.958663 234.676191 814.413301 0 524.979332 0z" /></svg>
    </a>
    

    
    <a class="social-link" title="stackoverflow" href="https://stackoverflow.com/users/1925083/cizixs" target="_blank" rel="noopener">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 21h-10v-2h10v2zm6-11.665l-1.621-9.335-1.993.346 1.62 9.335 1.994-.346zm-5.964 6.937l-9.746-.975-.186 2.016 9.755.879.177-1.92zm.538-2.587l-9.276-2.608-.526 1.954 9.306 2.5.496-1.846zm1.204-2.413l-8.297-4.864-1.029 1.743 8.298 4.865 1.028-1.744zm1.866-1.467l-5.339-7.829-1.672 1.14 5.339 7.829 1.672-1.14zm-2.644 4.195v8h-12v-8h-2v10h16v-10h-2z"/></svg>
    </a>
    

    

    
    <a class="social-link" title="twitter" href="https://twitter.com/cizixs" target="_blank" rel="noopener">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M30.063 7.313c-.813 1.125-1.75 2.125-2.875 2.938v.75c0 1.563-.188 3.125-.688 4.625a15.088 15.088 0 0 1-2.063 4.438c-.875 1.438-2 2.688-3.25 3.813a15.015 15.015 0 0 1-4.625 2.563c-1.813.688-3.75 1-5.75 1-3.25 0-6.188-.875-8.875-2.625.438.063.875.125 1.375.125 2.688 0 5.063-.875 7.188-2.5-1.25 0-2.375-.375-3.375-1.125s-1.688-1.688-2.063-2.875c.438.063.813.125 1.125.125.5 0 1-.063 1.5-.25-1.313-.25-2.438-.938-3.313-1.938a5.673 5.673 0 0 1-1.313-3.688v-.063c.813.438 1.688.688 2.625.688a5.228 5.228 0 0 1-1.875-2c-.5-.875-.688-1.813-.688-2.75 0-1.063.25-2.063.75-2.938 1.438 1.75 3.188 3.188 5.25 4.25s4.313 1.688 6.688 1.813a5.579 5.579 0 0 1 1.5-5.438c1.125-1.125 2.5-1.688 4.125-1.688s3.063.625 4.188 1.813a11.48 11.48 0 0 0 3.688-1.375c-.438 1.375-1.313 2.438-2.563 3.188 1.125-.125 2.188-.438 3.313-.875z"/></svg>

    </a>
    

    
    <a class="social-link" title="instagram" href="https://www.instagram.com/cizixs/" target="_blank" rel="noopener">
        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"/></svg>
    </a>
    
    
    
</div>
    </div>
</nav>
    </div>
</header>


<main id="site-main" class="site-main outer" role="main">
    <div class="inner">
        <header class="post-full-header">
            <section class="post-full-meta">
                <time  class="post-full-meta-date" datetime="2017-03-14T16:00:00.000Z" itemprop="datePublished">
                    2017-03-15
                </time>
                
                <span class="date-divider">/</span>
                
                <a href="/categories/blog/">blog</a>&nbsp;&nbsp;
                
                
            </section>
            <h1 class="post-full-title">容器生态系统简介</h1>
        </header>
        <article class="post-full no-image">
            
            <section class="post-full-content">
                <div id="lightgallery" class="markdown-body">
                    <p>很少有技术能够像 docker 这样一出来就收到关注，并在很短的时间里发展壮大，而且几乎所有的技术公司都开始使用或者希望使用。随着 docker 的出现，配置管理、微服务、数据中心自动化、devops 多个领域都重新焕发新机，好像 IT 行业的整个架构都要重新定义一样。</p>
<p>这篇文章我会介绍一下目前（2017年 3月）容器圈子（主要还是 docker） 一些主要的参与者，它们共同组成了繁荣的容器生态圈。</p>
<p><img src="https://www.chrisbarra.me/images/docker.png" alt=""></p>
<h2 id="容器引擎"><a href="#容器引擎" class="headerlink" title="容器引擎"></a>容器引擎</h2><p>容器引擎（Engine）或者容器运行时（Runtime）是容器系统的核心，也是很多人使用“容器”这个词语的指代对象。容器引擎能够创建和运行容器，而容器的定义一般是以文本方式保存的，比如 Dockerfile。</p>
<ul>
<li><a href="https://www.docker.com/docker-engine" target="_blank" rel="noopener">Docker Engine</a> ：目前最流行的容器引擎，也是业界的事实标准</li>
<li><a href="https://coreos.com/rkt/docs/latest/" target="_blank" rel="noopener">Rkt</a>：CoreOS 团队推出的容器引擎，目前处于活跃发展阶段，被 kubernetes 调度系统支持</li>
</ul>
<h2 id="云提供商（国外篇）"><a href="#云提供商（国外篇）" class="headerlink" title="云提供商（国外篇）"></a>云提供商（国外篇）</h2><p>容器飞速发展的时候，很多公司反应迅速，都相继推出了自己的公有云或者私有云的容器解决方案。国外比较有名的容器云提供商包括：</p>
<ul>
<li><a href="https://aws.amazon.com/ecs/" target="_blank" rel="noopener">Amazon EC2 Container Serveice</a>（ECS）：云计算巨头 AWS 推出的容器服务，比较吸引人的是构建在 EC2 上面的 ECS 是免费的，用户只需要为底层的 EC2 资源付费</li>
<li><a href="https://cloud.google.com/container-engine/" target="_blank" rel="noopener">Google Container Engine</a>（GKE）：谷歌在错过大数据的福利之后，在云计算领域开始醒悟。在社区推出 kubernetes，企图制定容器调度集群的标准，而同时推出公有的 GKE 服务</li>
<li><a href="https://azure.microsoft.com/en-us/services/container-service/" target="_blank" rel="noopener">Azure Container Service</a>：作为巨头，微软也积极推出了容器服务，凭借积累的技术和商业资源迅速崛起</li>
<li><a href="https://jelastic.com/docker/" target="_blank" rel="noopener">Jelastic</a></li>
<li><a href="https://cloud.docker.com/" target="_blank" rel="noopener">Docker Cloud</a>：docker 自家的容器云服务，在收购了 Tutum 公司之后，利用 docker swarm 集群管理技术推出了方便使用的产品</li>
</ul>
<h2 id="云提供商（国内篇）"><a href="#云提供商（国内篇）" class="headerlink" title="云提供商（国内篇）"></a>云提供商（国内篇）</h2><p>每次新技术的出现都会催生一堆公司，有大公司也有创业公司。不管是大数据、Iaas、人工智能还是现在的容器。国内公司目前对技术已经非常敏感，追逐和使用新技术的脚步从来没有落后过。虽然现在还没有在核心技术上制定标准和掀起浪潮，但是我相信不久之后中国会出现能够影响世界的技术。</p>
<p>目前国内做容器比较知名的公司包括：</p>
<ul>
<li><a href="https://www.aliyun.com/product/containerservice" target="_blank" rel="noopener">阿里云</a>：作为国内云服务的一哥，阿里云反应迅速，和 docker 建立 <a href="http://www.infoq.com/cn/news/2016/10/Docker-Aliyun-inPartnership-2016" target="_blank" rel="noopener">官方合作</a>，也开始为自己的容器产品布道</li>
<li><a href="https://c.163.com/" target="_blank" rel="noopener">网易蜂巢</a>：网易在自家的 IaaS 平台成熟之后，在此之上推出了容器云服务，据说内部产品已经大都迁移到容器</li>
<li><a href="http://www.alauda.cn/" target="_blank" rel="noopener">灵雀云</a>：云雀科技成立于2014年，由原微软Azure云平台的核心创始团队创立</li>
<li><a href="https://www.tenxcloud.com/" target="_blank" rel="noopener">时速云</a>：tenxcloud，基于 Kubernetes 的容器云计算平台，提供公有云和企业云服务</li>
<li><a href="https://www.shurenyun.com/" target="_blank" rel="noopener">数人云</a>：基于 mesos 研发的轻量级 Pass 平台</li>
<li><a href="https://www.caicloud.io/" target="_blank" rel="noopener">才云</a>：使用的是 kubernetes 方案，2015 年成立的公司，提供私有云服务和人工智能解决方案</li>
<li><a href="https://www.daocloud.io/" target="_blank" rel="noopener">daocloud</a>：企业级应用云平台及解决方案，坐标上海</li>
</ul>
<h2 id="容器编排系统"><a href="#容器编排系统" class="headerlink" title="容器编排系统"></a>容器编排系统</h2><p>容器与虚拟机相比有个很大的优势就是轻量，这个特性的量变很快就引发了质变，让容器在各个技术角落施展拳脚。不过轻量级的容很容易造成混乱，面对成百上千乃至更多的容器，必须要有统一的管理平台。所以目前容器技术最热烈的激战也在这个领域，所有要使用容器的企业必须要在容器管理系统做出自己的抉择。</p>
<ul>
<li><a href="https://kubernetes.io/" target="_blank" rel="noopener">Kubernetes</a>：Google 家开源的容器管理系统，起源于内部历史悠久的 Borg 系统。因为其丰富的功能被多家公司使用，不仅支持 docker ，还支持其他容器（比如 Rkt），但是也相对复杂，易用性差一点</li>
<li><a href="https://docs.docker.com/engine/swarm/" target="_blank" rel="noopener">Docker Swarm</a>： 从 docker1.12.0 版本之后，docker 就推出了 docker swarm 模式。用户能够轻松快速搭建出来 docker 容器集群，几乎完全兼容 docker API 的特性让它很容易被用户接受。可以说潜力很大，至于最后能发展成什么样子还要时间检验</li>
<li><a href="https://mesosphere.com/" target="_blank" rel="noopener">Mesosphere</a>：起源于 Apache Mesos 的调度框架，目标是成为数据中心的操作系统，完全接管数据中心的管理工作</li>
<li><a href="http://rancher.com/" target="_blank" rel="noopener">Rancher</a>：其易用的界面和完全开源的特性吸引不少刚接触容器的技术人员，同时兼容 kubernetes、mesos 和 swarm 集群系统。但目前社区不是很活跃，二次开发的难度较大</li>
<li><a href="https://www.nomadproject.io/" target="_blank" rel="noopener">Nomad</a>：HashiCorp 开源的集群管理和调度系统，如果需要其他功能（比如服务发现、密码管理等）需要自己使用其他工具进行集成</li>
</ul>
<h2 id="容器基础镜像"><a href="#容器基础镜像" class="headerlink" title="容器基础镜像"></a>容器基础镜像</h2><p>容器虽然轻量，但是传统的基础镜像并非如此。因此有很多企业尝试着打造专门为容器而生的操作系统，希望能成为容器时代的新选择。</p>
<ul>
<li><a href="https://coreos.com/os/docs/latest" target="_blank" rel="noopener">CoreOS</a>：以容器为中心的操作系统，配置管理、自动扩容、安全等方面有一套完整的工具</li>
<li><a href="https://www.projectatomic.io/" target="_blank" rel="noopener">Project Atomic</a>：一个轻量级的操作系统，可以运行 docker、kubernetes、rpm 和 systemd</li>
<li><a href="https://www.ubuntu.com/core" target="_blank" rel="noopener">Ubuntu Core</a>：轻量级 ubuntu 操作系统，适合运行 IoT 设备或者容器集群</li>
<li><a href="http://rancher.com/rancher-os/" target="_blank" rel="noopener">Rancher OS</a>：只有 50M+ 的操作系统，为运行 docker 容器打造。有趣的是，它可以让系统容器和用户容器运行在不同的 Docker Daemon 上，从而实现隔离效果</li>
<li><a href="https://vmware.github.io/photon/" target="_blank" rel="noopener">Project Photon</a>：VMware 开源的项目，旨在提供极简化的容器主机系统</li>
</ul>
<h2 id="镜像-registry"><a href="#镜像-registry" class="headerlink" title="镜像 registry"></a>镜像 registry</h2><p>镜像 registry 是存储镜像的地方，可以方便地在团队、公司或者世界各地分享容器镜像，也是运行容器最基本的基础设施。</p>
<ul>
<li><a href="https://github.com/docker/distribution" target="_blank" rel="noopener">Docker Registry</a>：Docker 公司提供的开源镜像服务器，也是目前最流行的自建 registry 的方案</li>
<li><a href="https://hub.docker.com/" target="_blank" rel="noopener">Dockerhub</a>：docker 公司提供的公共镜像 registry，可以通过 UI 来查看和管理镜像，上面也有大量的标准镜像可以下载</li>
<li><a href="https://quay.io/" target="_blank" rel="noopener">Quay</a>：提供镜像管理和安全检查服务的  公有 registry</li>
<li><a href="https://github.com/vmware/harbor" target="_blank" rel="noopener">Harbor</a>：企业级的镜像 registry，提供了权限控制和图形界面</li>
</ul>
<h2 id="容器监控"><a href="#容器监控" class="headerlink" title="容器监控"></a>容器监控</h2><ul>
<li><a href="https://github.com/google/cadvisor" target="_blank" rel="noopener">cAdvisor</a>：Google 开源的容器使用率和性能监控工具</li>
<li><a href="https://www.datadoghq.com/blog/monitor-docker-datadog/" target="_blank" rel="noopener">Datadog Docker</a>：能够收集 docker 的运行信息，并发送到 Datadog 进行分析</li>
<li><a href="https://newrelic.com/partner/docker" target="_blank" rel="noopener">NewRelic Docker</a>：收集 docker 的运行信息，并发送到 NewRelic 进行分析</li>
<li><a href="https://sysdig.com/" target="_blank" rel="noopener">Sysdig</a>：同时提供开源版本和企业版本，能够监控容器使用率和性能，并对性能就行分析</li>
<li><a href="https://logdns.com" target="_blank" rel="noopener">logdns</a>：能够收集容器或者集群的日志，发送到 logdna 服务器端就行分析、设置告警等</li>
</ul>
<h2 id="网络"><a href="#网络" class="headerlink" title="网络"></a>网络</h2><p>容器的大规模使用，也对网络提供了更高的要求。网络的不灵活也是很多企业的短板，目前也有很多公司和项目在尝试解决这些问题，希望提出容器时代的网络方案。</p>
<ul>
<li><a href="https://www.weave.works/products/weave-net/" target="_blank" rel="noopener">Weave Net</a>：weaveworks 给出的网络的方案，使用 vxlan 技术， 支持网络的隔离和安全</li>
<li><a href="https://github.com/coreos/flannel" target="_blank" rel="noopener">Flannel</a>：CoreOS 开源的网络方案，为 kubernetes 设计，支持不同的后端实现</li>
<li><a href="https://www.projectcalico.org/" target="_blank" rel="noopener">Calico</a>：一个纯三层的网络解决方案，使用 BGP 协议进行路由，可以集成到 openstack 和 docker</li>
<li><a href="https://contiv.github.io/" target="_blank" rel="noopener">Contiv</a>: 能够打通物理机、虚拟机和容器之间连通性的网络方案</li>
</ul>
<h2 id="服务发现"><a href="#服务发现" class="headerlink" title="服务发现"></a>服务发现</h2><p>容器和微服务的结合创造了另外的热潮，也让服务发现成功了热门名词。可以轻松扩展微服务的同时，也要有工具来实现服务之间相互发现的需求。目前主要有三种工具，当然它们可能已经集成到其他的容器管理系统中。</p>
<ul>
<li><a href="https://github.com/coreos/etcd" target="_blank" rel="noopener">etcd</a>：CoreOS 开源的分布式 key-value 存储，通过 HTTP 协议提供服务，因此使用起来简单。但是 etcd 只是一个 key-value 存储，默认不支持服务发现，需要三方工具来集成。kubernetes 默认就使用 etcd 作为存储</li>
<li><a href="https://www.consul.io/" target="_blank" rel="noopener">consul</a>：HashiCorp 开源的服务发现和配置管理工具，自带服务发现特性（DNS Server）。它是强一致性的数据存储，使用 gossip 协议形成动态集群</li>
<li><a href="https://zookeeper.apache.org/" target="_blank" rel="noopener">zookeeper</a>：比较悠久的服务发现项目，起源于 Hadoop 社区，优点是成熟、可靠、功能丰富，缺点是使用 Java 开发，配置比较麻烦</li>
</ul>
<h2 id="参考资料"><a href="#参考资料" class="headerlink" title="参考资料"></a>参考资料</h2><ul>
<li><a href="http://blog.dennybritz.com/2015/10/01/a-brief-guide-to-the-docker-ecosystem/" target="_blank" rel="noopener">A brief guide to the docker ecosystem</a></li>
<li><a href="http://dockone.io/article/667" target="_blank" rel="noopener">服务发现：Zookeeper vs etcd vs Consul</a></li>
<li><a href="http://linoxide.com/containers/linux-container-operating-systems/" target="_blank" rel="noopener">Linux Container Operating Systems</a></li>
</ul>

                </div>
            </section>
        </article>
    </div>
    
<nav class="pagination">
    
    
    <a class="prev-post" title="HTTP 代理原理和实现" href="/2017/03/21/http-proxy-and-golang-implementation/">
        ← HTTP 代理原理和实现
    </a>
    
    <span class="prev-next-post">•</span>
    
    <a class="next-post" title="kubernetes 简介：调度器和调度算法" href="/2017/03/10/kubernetes-intro-scheduler/">
        kubernetes 简介：调度器和调度算法 →
    </a>
    
    
</nav>

    <div class="inner">
    <!-- Begin Mailchimp Signup Form -->
    <link href="//cdn-images.mailchimp.com/embedcode/classic-10_7.css" rel="stylesheet" type="text/css">
    <style type="text/css">
    	#mc_embed_signup{background:#fff; clear:left; font:14px Helvetica,Arial,sans-serif; }
    	/* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
    	   We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
    </style>
    <div id="mc_embed_signup">
    <form action="https://cizixs.us7.list-manage.com/subscribe/post?u=2d561b8dea52d73a2e05e6dcb&amp;id=5c710f135b" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
        <div id="mc_embed_signup_scroll">
    	<h2>订阅本博客，第一时间收到文章更新</h2>
    <div class="indicates-required"><span class="asterisk">*</span> indicates required</div>
    <div class="mc-field-group">
    	<label for="mce-EMAIL">邮件地址  <span class="asterisk">*</span>
    </label>
    	<input type="email" value="" name="EMAIL" class="required email" id="mce-EMAIL">
    </div>
    	<div id="mce-responses" class="clear">
    		<div class="response" id="mce-error-response" style="display:none"></div>
    		<div class="response" id="mce-success-response" style="display:none"></div>
    	</div>    <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
        <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_2d561b8dea52d73a2e05e6dcb_5c710f135b" tabindex="-1" value=""></div>
        <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
        </div>
    </form>
    </div>
    <script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script><script type='text/javascript'>(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';}(jQuery));var $mcj = jQuery.noConflict(true);</script>
    <!--End mc_embed_signup-->
    </div>

    <div class="inner">
        <div id="disqus_thread"></div>
    </div>

    
</main>

<div class="t-g-control">
    <div class="gotop">
        <svg class="icon" width="32px" height="32px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M793.024 710.272a32 32 0 1 0 45.952-44.544l-310.304-320a32 32 0 0 0-46.4 0.48l-297.696 320a32 32 0 0 0 46.848 43.584l274.752-295.328 286.848 295.808z" fill="#8a8a8a" /></svg>
    </div>
    <div class="toc-control">
        <svg class="icon toc-icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M779.776 480h-387.2a32 32 0 0 0 0 64h387.2a32 32 0 0 0 0-64M779.776 672h-387.2a32 32 0 0 0 0 64h387.2a32 32 0 0 0 0-64M256 288a32 32 0 1 0 0 64 32 32 0 0 0 0-64M392.576 352h387.2a32 32 0 0 0 0-64h-387.2a32 32 0 0 0 0 64M256 480a32 32 0 1 0 0 64 32 32 0 0 0 0-64M256 672a32 32 0 1 0 0 64 32 32 0 0 0 0-64" fill="#8a8a8a" /></svg>
        <svg class="icon toc-close" style="display: none;" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M512 960c-247.039484 0-448-200.960516-448-448S264.960516 64 512 64 960 264.960516 960 512 759.039484 960 512 960zM512 128.287273c-211.584464 0-383.712727 172.128262-383.712727 383.712727 0 211.551781 172.128262 383.712727 383.712727 383.712727 211.551781 0 383.712727-172.159226 383.712727-383.712727C895.712727 300.415536 723.551781 128.287273 512 128.287273z" fill="#8a8a8a" /><path d="M557.05545 513.376159l138.367639-136.864185c12.576374-12.416396 12.672705-32.671738 0.25631-45.248112s-32.704421-12.672705-45.248112-0.25631l-138.560301 137.024163-136.447897-136.864185c-12.512727-12.512727-32.735385-12.576374-45.248112-0.063647-12.512727 12.480043-12.54369 32.735385-0.063647 45.248112l136.255235 136.671523-137.376804 135.904314c-12.576374 12.447359-12.672705 32.671738-0.25631 45.248112 6.271845 6.335493 14.496116 9.504099 22.751351 9.504099 8.12794 0 16.25588-3.103239 22.496761-9.247789l137.567746-136.064292 138.687596 139.136568c6.240882 6.271845 14.432469 9.407768 22.65674 9.407768 8.191587 0 16.352211-3.135923 22.591372-9.34412 12.512727-12.480043 12.54369-32.704421 0.063647-45.248112L557.05545 513.376159z" fill="#8a8a8a" /></svg>
    </div>
    <div class="gobottom">
        <svg class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M231.424 346.208a32 32 0 0 0-46.848 43.584l297.696 320a32 32 0 0 0 46.4 0.48l310.304-320a32 32 0 1 0-45.952-44.544l-286.848 295.808-274.752-295.36z" fill="#8a8a8a" /></svg>
    </div>
</div>
<div class="toc-main" style="right: -100%">
    <div class="post-toc">
        <span>TOC</span>
        <ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#容器引擎"><span class="toc-text">容器引擎</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#云提供商（国外篇）"><span class="toc-text">云提供商（国外篇）</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#云提供商（国内篇）"><span class="toc-text">云提供商（国内篇）</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#容器编排系统"><span class="toc-text">容器编排系统</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#容器基础镜像"><span class="toc-text">容器基础镜像</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#镜像-registry"><span class="toc-text">镜像 registry</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#容器监控"><span class="toc-text">容器监控</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#网络"><span class="toc-text">网络</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#服务发现"><span class="toc-text">服务发现</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#参考资料"><span class="toc-text">参考资料</span></a></li></ol>
    </div>
</div>



        

<aside class="read-next outer">
    <div class="inner">
        <div class="read-next-feed">
            
            

<article class="read-next-card"  style="background-image: url(https://cizixs-blog.oss-cn-beijing.aliyuncs.com/006tNc79ly1g1qxcn9ft3j318w0txdo6.jpg)"  >
  <header class="read-next-card-header">
    <small class="read-next-card-header-sitetitle">&mdash; Cizixs Write Here &mdash;</small>
    <h3 class="read-next-card-header-title">Recent Posts</h3>
  </header>
  <div class="read-next-divider">
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
      <path d="M13 14.5s2 3 5 3 5.5-2.463 5.5-5.5S21 6.5 18 6.5c-5 0-7 11-12 11C2.962 17.5.5 15.037.5 12S3 6.5 6 6.5s4.5 3.5 4.5 3.5"/>
    </svg>
  </div>
  <div class="read-next-card-content">
    <ul>
      
      
      
      <li>
        <a href="/2018/08/26/what-is-istio/">什么是 istio</a>
      </li>
      
      
      
      <li>
        <a href="/2018/08/25/knative-serverless-platform/">serverless 平台 knative 简介</a>
      </li>
      
      
      
      <li>
        <a href="/2018/06/25/kubernetes-resource-management/">kubernetes 资源管理概述</a>
      </li>
      
      
      
      <li>
        <a href="/2018/01/24/use-prometheus-and-grafana-to-monitor-linux-machine/">使用 promethues 和 grafana 监控自己的 linux 机器</a>
      </li>
      
      
      
      <li>
        <a href="/2018/01/13/linux-udp-packet-drop-debug/">linux 系统 UDP 丢包问题分析思路</a>
      </li>
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    </ul>
  </div>
  <footer class="read-next-card-footer">
    <a href="/archives">  MORE  → </a>
  </footer>
</article>


            
            
            
        </div>
    </div>
</aside>


<footer class="site-footer outer">

	<div class="site-footer-content inner">
		<section class="copyright">
			<a href="/" title="Cizixs Write Here">Cizixs Write Here</a>
			&copy; 2019
		</section>
		<nav class="site-footer-nav">
			
            <a href="https://hexo.io" title="Hexo" target="_blank" rel="noopener">Hexo</a>
            <a href="https://github.com/xzhih/hexo-theme-casper" title="Casper" target="_blank" rel="noopener">Casper</a>
        </nav>
    </div>
</footer>






<div class="floating-header" >
	<div class="floating-header-logo">
        <a href="/" title="Cizixs Write Here">
			
                <img src="https://cizixs-blog.oss-cn-beijing.aliyuncs.com/006tNc79ly1g1qxfovpzyj30740743yg.jpg" alt="Cizixs Write Here icon" />
			
            <span>Cizixs Write Here</span>
        </a>
    </div>
    <span class="floating-header-divider">&mdash;</span>
    <div class="floating-header-title">容器生态系统简介</div>
    <progress class="progress" value="0">
        <div class="progress-container">
            <span class="progress-bar"></span>
        </div>
    </progress>
</div>
<script>
   $(document).ready(function () {
    var progressBar = document.querySelector('progress');
    var header = document.querySelector('.floating-header');
    var title = document.querySelector('.post-full-title');
    var lastScrollY = window.scrollY;
    var lastWindowHeight = window.innerHeight;
    var lastDocumentHeight = $(document).height();
    var ticking = false;

    function onScroll() {
        lastScrollY = window.scrollY;
        requestTick();
    }
    function requestTick() {
        if (!ticking) {
            requestAnimationFrame(update);
        }
        ticking = true;
    }
    function update() {
        var rect = title.getBoundingClientRect();
        var trigger = rect.top + window.scrollY;
        var triggerOffset = title.offsetHeight + 35;
        var progressMax = lastDocumentHeight - lastWindowHeight;
            // show/hide floating header
            if (lastScrollY >= trigger + triggerOffset) {
                header.classList.add('floating-active');
            } else {
                header.classList.remove('floating-active');
            }
            progressBar.setAttribute('max', progressMax);
            progressBar.setAttribute('value', lastScrollY);
            ticking = false;
        }

        window.addEventListener('scroll', onScroll, {passive: true});
        update();

        // TOC
        var width = $('.toc-main').width();
        $('.toc-control').click(function () {
            if ($('.t-g-control').css('width')=="50px") {
                if ($('.t-g-control').css('right')=="0px") {
                    $('.t-g-control').animate({right: width}, "slow");
                    $('.toc-main').animate({right: 0}, "slow");
                    toc_icon()
                } else {
                    $('.t-g-control').animate({right: 0}, "slow");
                    $('.toc-main').animate({right: -width}, "slow");
                    toc_icon()
                }
            } else {
                if ($('.toc-main').css('right')=="0px") {
                    $('.toc-main').slideToggle("fast", toc_icon());
                } else {
                    $('.toc-main').css('right', '0px');
                    toc_icon()
                }
            }
        })

        function toc_icon() {
            if ($('.toc-icon').css('display')=="none") {
                $('.toc-close').hide();
                $('.toc-icon').show();
            } else {
                $('.toc-icon').hide();
                $('.toc-close').show();
            }
        }

        $('.gotop').click(function(){
            $('html,body').animate({scrollTop:$('.post-full-header').offset().top}, 800);
        });
        $('.gobottom').click(function () {
            $('html,body').animate({scrollTop:$('.pagination').offset().top}, 800);
        });

        // highlight
        // https://highlightjs.org
        $('pre code').each(function(i, block) {
            hljs.highlightBlock(block);
        });
        $('td.code').each(function(i, block) {
            hljs.highlightBlock(block);
        });

        console.log("this theme is from https://github.com/xzhih/hexo-theme-casper")
    });
</script>



<link rel="stylesheet" href="https://cdn.staticfile.org/lightgallery/1.3.9/css/lightgallery.min.css">



<script src="https://cdn.staticfile.org/lightgallery/1.3.9/js/lightgallery.min.js"></script>


<script>
	$(function () {
		var postImg = $('#lightgallery').find('img');
		postImg.addClass('post-img');
		postImg.each(function () {
			var imgSrc = $(this).attr('src');
			$(this).attr('data-src', imgSrc);
		});
		$('#lightgallery').lightGallery({selector: '.post-img'});
	});
</script>



<script>

/**
*  RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
*  LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables*/

var disqus_config = function () {
this.page.url = 'http://cizixs.com/2017/03/15/container-ecosystem/';  // Replace PAGE_URL with your page's canonical URL variable
this.page.identifier = 'http://cizixs.com/2017/03/15/container-ecosystem/'; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
};

(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = 'https://cizixs.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
                            


    </div>
</body>
</html>
